const express = require('express');
const app = express();
const fs = require('fs');
const path = require('path');
const yaml = require('js-yaml'); // 引入 js-yaml 库用于解析 YAML 文件

// 下载文件的接口
app.get('/download/:filename', (req, res) => {
    const { filename } = req.params;
    console.log('filename:', filename);
    const filePath = path.join(__dirname, 'download', filename);
    // 检查文件是否存在
    if (fs.existsSync(filePath)) {
        if (filePath.endsWith('.yaml') || filePath.endsWith('.yml')) {
            try {
                const fileContents = fs.readFileSync(filePath, 'utf8');
                const data = yaml.load(fileContents); // 解析 YAML 文件内容
                res.json(data); // 返回解析后的数据
            } catch (error) {
                res.status(500).send('Error parsing YAML file');
            }
        } else {
            // 设置响应头，告知浏览器这是一个附件（即下载文件）
            res.header('Content-Type', 'application/octet-stream');
            res.header('Content-Disposition', 'attachment; filename="' + encodeURIComponent(path.basename(filePath)) + '"');
            // 创建可读流并写入响应
            fs.createReadStream(filePath).pipe(res);
        }
    } else {
        res.status(404).send('File not found');
    }
});

// 启动服务器
const PORT = process.env.PORT || 3010;
app.listen(PORT, () => {
    console.log(`Server is running on port ${PORT}`);
});